const { DataTypes } = require("sequelize");
const Seq = require("../sql");

//  用户模型  --- 数据库中的user表一一对应的映射关系
// 工资详情表
const Salary = Seq.define(
  "salary",
  {
    // 在这里定义模型属性
    uid: {
      type: DataTypes.UUID,
      defaultValue: DataTypes.UUIDV4, // 或 DataTypes.UUIDV1
    },
    nickname: {
      type: DataTypes.STRING, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    salary: {
      type: DataTypes.INTEGER, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    work_hours: {
      type: DataTypes.INTEGER, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    paid_leave_days: {
      type: DataTypes.INTEGER, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    unpaid_leave_days: {
      type: DataTypes.INTEGER, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    late_early_times: {
      type: DataTypes.INTEGER, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    subsidy: {
      type: DataTypes.INTEGER, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    total: {
      type: DataTypes.INTEGER, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    timeDate: {
      type: DataTypes.STRING, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    department: {
      type: DataTypes.STRING, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
    position: {
      type: DataTypes.STRING, // 类型字母必须要全部大小
      allowNull: false, // 允许为空吗
    },
  },
  {
    // 这是其他模型参数
    //  强制表名称等于模型名称
    freezeTableName: true,
  }
);

Salary.sync()
  .then(() => {
    console.log("=======Salary表同步成功=======");
  })
  .catch((err) => {
    console.error("======Salary表同步异常=======", err);
  });

module.exports = Salary;
